Para almacenar múltiples roles asignados a un usuario en la tabla `users`, es mejor crear una tabla intermedia que gestione la relación muchos a muchos entre usuarios y roles. 
Esto se hace porque una columna en la tabla `users` no puede almacenar un array o un JSON de manera eficiente en MySQL.

Aquí tienes una mejor forma de estructurar tu base de datos:

1. **Tabla `roles`**:
   ```sql
   CREATE TABLE roles (
       id_role INT AUTO_INCREMENT PRIMARY KEY,
       role_name VARCHAR(45) NOT NULL UNIQUE
   );
   ```

2. **Tabla `users`**:
   ```sql
CREATE TABLE IF NOT EXISTS `users` (
  `id_user` INT AUTO_INCREMENT PRIMARY KEY,
  `username` VARCHAR(45) UNIQUE NOT NULL,
  `name` VARCHAR(50) NOT NULL,
  `last_name` VARCHAR(50) NOT NULL,
  `phone` VARCHAR(15) NOT NULL UNIQUE,
  `email` VARCHAR(100) NOT NULL UNIQUE,
  `password` VARCHAR(255) NOT NULL,
  `full_name` VARCHAR(100),
  `registered_date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  `last_modified` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
   ```

3. **Tabla intermedia `company_user_roles`**:
   ```sql
CREATE TABLE IF NOT EXISTS `company_user_roles` (
  `company_id` INT NOT NULL,
  `user_id` INT NOT NULL,
  `role_id` INT NOT NULL,
  PRIMARY KEY (`company_id`, `user_id`, `role_id`),
  FOREIGN KEY (`company_id`) REFERENCES `companies` (`id_company`) ON DELETE CASCADE ON UPDATE CASCADE,
  FOREIGN KEY (`user_id`) REFERENCES `users` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE,
  FOREIGN KEY (`role_id`) REFERENCES `roles` (`id_role`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
   ```

4. ** Tabla de Dispositivos `devices`**:
```sql
CREATE TABLE IF NOT EXISTS devices (
    id_device INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    device_id VARCHAR(100) NOT NULL,
    device_type VARCHAR(50),
    os VARCHAR(50),
    browser VARCHAR(50),
    last_login TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    UNIQUE (user_id, device_id),
    FOREIGN KEY (user_id) REFERENCES users (id_user) ON DELETE CASCADE
);
```

### Explicación:
- **Tabla `company_user_roles`**: Esta tabla tiene dos columnas (`user_id` y `role_id`), que permiten asociar un usuario a múltiples roles y viceversa. 
Esto te evita problemas de normalización y hace que las consultas sean más eficientes.
- No es necesario intentar guardar varios valores en una sola columna, ya que esto complicaría las consultas y la integridad de los datos.

De esta manera, puedes gestionar fácilmente los roles de cada usuario mediante la tabla intermedia.